/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package paneles;

import arreglos.ClienteArrayList;
import com.toedter.calendar.JDateChooser;
import com.toedter.calendar.JSpinnerDateEditor;
import entidades.Cliente;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import principal.Principal;
import util.Utilitarios;


public class PanelConsultarEmpleado extends JPanel implements ActionListener {


    private JLabel lblAgregarClienteTitulo;
    private JLabel lblCodigoCliente;
    private JLabel lblNombreCliente;
    private JLabel lblApePaternoCliente;
    private JLabel lblApeMaternoCliente;
    private JLabel lblDniCliente;
    private JLabel lblEmailCliente;
    private JLabel lblTelefonoCliente;
    private JLabel lblDireccionCliente;
    
    private JLabel lblFechaNacimientoCliente;
    private JTextField txtCodigoCliente;
    private JTextField txtNombreCliente;
    private JTextField txtApePaternoCliente;
    private JTextField txtApeMaternoCliente;
    private JTextField txtDniCliente;
    private JTextField txtEmailCliente;
    private JTextField txtTelefonoCliente;
    private JTextField txtDireccionCliente;
 
    private JDateChooser txtFechaNacimientoCliente;
    private JButton btnBuscarCliente;
    private JButton btnCancelar;
    private JInternalFrame consultarCliente;

    public PanelConsultarEmpleado(Principal pAppletPrincipal, JInternalFrame pConsultarCliente) {

        this.consultarCliente = pConsultarCliente;

        lblAgregarClienteTitulo = new JLabel("Consultar cliente", JLabel.CENTER);
        lblAgregarClienteTitulo.setBounds(0, 15, 500, 35);
        lblAgregarClienteTitulo.setForeground(Color.red);
        lblAgregarClienteTitulo.setOpaque(true);
        //lblAgregarClienteTitulo.setBackground(Color.white);
        lblAgregarClienteTitulo.setFont(new Font("Dialog", Font.BOLD, 18));
        this.add(lblAgregarClienteTitulo);

        lblCodigoCliente = new JLabel("Ingrese Codigo Cliente:", JLabel.RIGHT);
        lblCodigoCliente.setBounds(0, 50, 210, 25);
        lblCodigoCliente.setForeground(Color.red);
        lblCodigoCliente.setOpaque(true);
        //lblNombreCliente.setBackground(Color.white);
        lblCodigoCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        this.add(lblCodigoCliente);

        lblNombreCliente = new JLabel("Nombre:", JLabel.RIGHT);
        lblNombreCliente.setBounds(0, 75, 210, 25);
        lblNombreCliente.setForeground(Color.red);
        lblNombreCliente.setOpaque(true);
        //lblNombreCliente.setBackground(Color.white);
        lblNombreCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        this.add(lblNombreCliente);

        lblApePaternoCliente = new JLabel("Apellido paterno:", JLabel.RIGHT);
        lblApePaternoCliente.setBounds(0, 100, 210, 25);
        lblApePaternoCliente.setForeground(Color.red);
        lblApePaternoCliente.setOpaque(true);
        //lblApePaternoCliente.setBackground(Color.white);
        lblApePaternoCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        this.add(lblApePaternoCliente);

        lblApeMaternoCliente = new JLabel("Apellido materno:", JLabel.RIGHT);
        lblApeMaternoCliente.setBounds(0, 125, 210, 25);
        lblApeMaternoCliente.setForeground(Color.red);
        lblApeMaternoCliente.setOpaque(true);
        //lblApeMaternoCliente.setBackground(Color.white);
        lblApeMaternoCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        this.add(lblApeMaternoCliente);

      
        lblDniCliente = new JLabel("Documento identidad:", JLabel.RIGHT);
        lblDniCliente.setBounds(0, 150, 210, 25);
        lblDniCliente.setForeground(Color.red);
        lblDniCliente.setOpaque(true);
        //lblDniCliente.setBackground(Color.white);
        lblDniCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        this.add(lblDniCliente);
        
        lblEmailCliente = new JLabel("Correo electronico:", JLabel.RIGHT);
        lblEmailCliente.setBounds(0, 225, 210, 25);
        lblEmailCliente.setForeground(Color.red);
        lblEmailCliente.setOpaque(true);
        //lblEmailCliente.setBackground(Color.white);
        lblEmailCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        this.add(lblEmailCliente);

        lblTelefonoCliente = new JLabel("Numero telefono:", JLabel.RIGHT);
        lblTelefonoCliente.setBounds(0, 175, 210, 25);
        lblTelefonoCliente.setForeground(Color.red);
        lblTelefonoCliente.setOpaque(true);
        //lblTelefonoCliente.setBackground(Color.white);
        lblTelefonoCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        this.add(lblTelefonoCliente);

        lblDireccionCliente = new JLabel("Direccion:", JLabel.RIGHT);
        lblDireccionCliente.setBounds(0, 200, 210, 25);
        lblDireccionCliente.setForeground(Color.red);
        lblDireccionCliente.setOpaque(true);
        //lblDireccionCliente.setBackground(Color.white);
        lblDireccionCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        this.add(lblDireccionCliente);

      

        lblFechaNacimientoCliente = new JLabel("Fecha nacimiento:", JLabel.RIGHT);
        lblFechaNacimientoCliente.setBounds(0, 250, 210, 25);
        lblFechaNacimientoCliente.setForeground(Color.red);
        lblFechaNacimientoCliente.setOpaque(true);
        //lblFechaNacimientoCliente.setBackground(Color.white);
        lblFechaNacimientoCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        this.add(lblFechaNacimientoCliente);

        txtCodigoCliente = new JTextField();
        txtCodigoCliente.setBounds(215, 50, 100, 20);
        txtCodigoCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        this.add(txtCodigoCliente);

        txtNombreCliente = new JTextField();
        txtNombreCliente.setBounds(215, 75, 200, 20);
        txtNombreCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        txtNombreCliente.setEnabled(false);
        this.add(txtNombreCliente);

        txtApePaternoCliente = new JTextField();
        txtApePaternoCliente.setBounds(215, 100, 200, 20);
        txtApePaternoCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        txtApePaternoCliente.setEnabled(false);
        this.add(txtApePaternoCliente);

        txtApeMaternoCliente = new JTextField();
        txtApeMaternoCliente.setBounds(215, 125, 200, 20);
        txtApeMaternoCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        txtApeMaternoCliente.setEnabled(false);
        this.add(txtApeMaternoCliente);

        txtDniCliente = new JTextField();
        txtDniCliente.setBounds(215, 150, 200, 20);
        txtDniCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        this.add(txtDniCliente);
       

        txtTelefonoCliente = new JTextField();
        txtTelefonoCliente.setBounds(215, 175, 200, 20);
        txtTelefonoCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        txtTelefonoCliente.setEnabled(false);
        this.add(txtTelefonoCliente);

        txtDireccionCliente = new JTextField();
        txtDireccionCliente.setBounds(215, 200, 200, 20);
        txtDireccionCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        txtDireccionCliente.setEnabled(false);
        this.add(txtDireccionCliente);

 
        txtEmailCliente = new JTextField();
        txtEmailCliente.setBounds(215, 225, 200, 20);
        txtEmailCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        this.add(txtEmailCliente);

        txtFechaNacimientoCliente = new JDateChooser(null, null, null, new JSpinnerDateEditor());
        txtFechaNacimientoCliente.setBounds(215, 250, 200, 20);
        txtFechaNacimientoCliente.setFont(new Font("Dialog", Font.BOLD, 12));
        /*Establece la fecha maxima de seleccion para el
        año de nacimiento*/
        Date date = Utilitarios.FechaMaximaDeSeleccion();
        txtFechaNacimientoCliente.setMaxSelectableDate(date);
        txtFechaNacimientoCliente.setDate(date);
        txtFechaNacimientoCliente.setEnabled(false);
        this.add(txtFechaNacimientoCliente);

        btnBuscarCliente = new JButton("Buscar");
        btnBuscarCliente.setBounds(315, 50, 100, 20);
        btnBuscarCliente.addActionListener(this);
        this.add(btnBuscarCliente);


        btnCancelar = new JButton("Cancelar");
        btnCancelar.setBounds(205, 300, 90, 30);
        btnCancelar.addActionListener(this);
        btnCancelar.setEnabled(false);
        this.add(btnCancelar);





    }

    public void actionPerformed(ActionEvent e) {

        if (e.getSource() == btnBuscarCliente) {
            BuscarDatosCliente();
        }
        if (e.getSource() == btnCancelar) {

            LimpiarDatosCliente();
            txtCodigoCliente.setEnabled(true);
            btnBuscarCliente.setEnabled(true);
            btnCancelar.setEnabled(false);
        }
    }

    private void BuscarDatosCliente() {
        Cliente cliente = null;
        ClienteArrayList clienteArrayList = null;
        try {
            cliente = new Cliente();
            cliente.setCodigo(txtCodigoCliente.getText().trim());
            clienteArrayList = new ClienteArrayList();
            cliente = clienteArrayList.BuscarDatosClientePorCodigo(cliente);
            Object codigo = cliente.getCodigo();
            if (codigo != null) {

                txtCodigoCliente.setEnabled(false);
                btnBuscarCliente.setEnabled(false);
                btnCancelar.setEnabled(true);

                txtNombreCliente.setText(cliente.getNombre());
                txtApePaternoCliente.setText(cliente.getApellidoPaterno());
                txtApeMaternoCliente.setText(cliente.getApellidoMaterno());               
                txtDireccionCliente.setText(cliente.getDireccion());
                txtTelefonoCliente.setText(cliente.getTelefono());               
                Date date = Utilitarios.ConvertirCadenaFecha(cliente.getFechaNacimiento());
                txtFechaNacimientoCliente.setDate(date);
                txtDniCliente.setText(cliente.getDni());
                txtEmailCliente.setText(cliente.getEmail());


            } else {
                Utilitarios.MostrarMensajeAlerta(consultarCliente, "No se encontro ningun cliente");
            }
        } catch (Exception ex) {
        }

    }

    private void LimpiarDatosCliente() {
        txtCodigoCliente.setText("");
        txtNombreCliente.setText("");
        txtApePaternoCliente.setText("");
        txtApeMaternoCliente.setText("");
        txtDniCliente.setText("");
        txtEmailCliente.setText("");
        txtTelefonoCliente.setText("");
        txtDireccionCliente.setText("");
        txtFechaNacimientoCliente.setDate(new Date());
        txtNombreCliente.requestFocus();
    }
}

